package delphorm.web.controller;



import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;

import delphorm.entite.questionnaire.Question;
import delphorm.entite.questionnaire.Questionnaire;



public class AjouterQuestionSession extends SimpleFormController {

	/* cette méthode permet de récupérer un formulaire déjà rempli*/
	protected Object formBackingObject(HttpServletRequest request)
	{
		//récupère le formulaire dans la session
		Object formulaire = request.getSession().getAttribute("formulaire");
		
		if(formulaire == null)
		{
			String numeroQ = request.getParameter("numeroquestion");
			if(numeroQ == null)
				//c'est une nouvelle question
			{
				formulaire = new Question();
			}
			else
			{
				Integer numeroQuestion = new Integer(Integer.parseInt(numeroQ));
				Questionnaire questionnaire = (Questionnaire)request.getSession().getAttribute("questionnaire");
				Question question = (Question)questionnaire.getQuestions().get(numeroQuestion.intValue());
				formulaire = question;
			}
		}
		return formulaire;
	}
	
	//cette méthode permet d'obtenir l'objet formulaire dans la page de confirmation
	protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object formulaire, BindException errors)
	{		
		
			
		//récupère le questionnaire
		Questionnaire questionnaire = (Questionnaire)request.getSession().getAttribute("questionnaire");
		
		Question question = (Question)formulaire;
		
//		mettre la question dans la session
		request.getSession().setAttribute("question",question);	
		
		if(!questionnaire.getQuestions().contains(question))
		{
			//ajouter la question au questionnaire
			questionnaire.getQuestions().add(question);
		}
		
		//rendre le model and view
		//pas de modele (l'utilisateur est déjà dans la session)
		return new ModelAndView(getSuccessView(),null);
	}

	
	
}
